// RAP [rh] AboutDialog left out for now ///******************************************************************************* // * Copyright (c) 2003, 2007 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.internal.about; // //import java.io.BufferedReader; //import java.io.ByteArrayInputStream; //import java.io.ByteArrayOutputStream; //import java.io.IOException; //import java.io.InputStreamReader; //import java.io.PrintWriter; //import java.util.Comparator; //import java.util.Iterator; //import java.util.LinkedList; //import java.util.Properties; //import java.util.SortedSet; //import java.util.TreeSet; // //import org.eclipse.core.runtime.CoreException; //import org.eclipse.core.runtime.IBundleGroup; //import org.eclipse.core.runtime.IBundleGroupProvider; //import org.eclipse.core.runtime.Platform; //import org.eclipse.core.runtime.preferences.IEclipsePreferences; //import org.eclipse.core.runtime.preferences.IPreferencesService; //import org.eclipse.osgi.util.NLS; //import org.eclipse.ui.about.ISystemSummarySection; //import org.eclipse.ui.internal.WorkbenchMessages; //import org.eclipse.ui.internal.WorkbenchPlugin; //import org.eclipse.ui.internal.util.Util; //import org.osgi.framework.Bundle; // ///** // * This class puts basic platform information into the system summary log. This // * includes sections for the java properties, the ids of all installed features // * and plugins, as well as a the current contents of the preferences service. // * // * @since 3.0 // */ //public class ConfigurationLogDefaultSection implements ISystemSummarySection { // // private static final String ECLIPSE_PROPERTY_PREFIX = "eclipse."; //$NON-NLS-1$ // // /* (non-Javadoc) // * @see org.eclipse.ui.about.ISystemSummarySection#write(java.io.PrintWriter) // */ // public void write(PrintWriter writer) { // appendProperties(writer); // appendFeatures(writer); // appendRegistry(writer); // appendUserPreferences(writer); // } // // /** // * Appends the <code>System</code> properties. // */ // private void appendProperties(PrintWriter writer) { // writer.println(); // writer.println(WorkbenchMessages.SystemSummary_systemProperties); // Properties properties = System.getProperties(); // SortedSet set = new TreeSet(new Comparator() { // public int compare(Object o1, Object o2) { // String s1 = (String) o1; // String s2 = (String) o2; // return s1.compareTo(s2); // } // }); // set.addAll(properties.keySet()); // Iterator i = set.iterator(); // while (i.hasNext()) { // String key = (String)i.next(); // String value = properties.getProperty(key); // // writer.print(key); // writer.print('='); // // // some types of properties have special characters embedded // if (key.startsWith(ECLIPSE_PROPERTY_PREFIX)) { // printEclipseProperty(writer, value); // } else if (key.toUpperCase().indexOf("PASSWORD") != -1) { //$NON-NLS-1$ // // We should obscure any property that may be a password // for (int j = 0; j < value.length(); j++) { // writer.print('*'); // } // writer.println(); // } else { // writer.println(value); // } // } // } // // private static void printEclipseProperty(PrintWriter writer, String value) { // String[] lines = Util.getArrayFromList(value, "\n"); //$NON-NLS-1$ // for (int i = 0; i < lines.length; ++i) { // writer.println(lines[i]); // } // } // // /** // * Appends the installed and configured features. // */ // private void appendFeatures(PrintWriter writer) { // writer.println(); // writer.println(WorkbenchMessages.SystemSummary_features); // // IBundleGroupProvider[] providers = Platform.getBundleGroupProviders(); // LinkedList groups = new LinkedList(); // if (providers != null) { // for (int i = 0; i < providers.length; ++i) { // IBundleGroup[] bundleGroups = providers[i].getBundleGroups(); // for (int j = 0; j < bundleGroups.length; ++j) { // groups.add(new AboutBundleGroupData(bundleGroups[j])); // } // } // } // AboutBundleGroupData[] bundleGroupInfos = (AboutBundleGroupData[]) groups // .toArray(new AboutBundleGroupData[0]); // // AboutData.sortById(false, bundleGroupInfos); // // for (int i = 0; i < bundleGroupInfos.length; ++i) { // AboutBundleGroupData info = bundleGroupInfos[i]; // String[] args = new String[] { info.getId(), info.getVersion(), // info.getName() }; // writer.println(NLS.bind(WorkbenchMessages.SystemSummary_featureVersion, args)); // } // } // // /** // * Appends the contents of the Plugin Registry. // */ // private void appendRegistry(PrintWriter writer) { // writer.println(); // writer.println(WorkbenchMessages.SystemSummary_pluginRegistry); // // Bundle[] bundles = WorkbenchPlugin.getDefault().getBundles(); // AboutBundleData[] bundleInfos = new AboutBundleData[bundles.length]; // // for (int i = 0; i < bundles.length; ++i) { // bundleInfos[i] = new AboutBundleData(bundles[i]); // } // // AboutData.sortById(false, bundleInfos); // // for (int i = 0; i < bundleInfos.length; ++i) { // AboutBundleData info = bundleInfos[i]; // String[] args = new String[] { info.getId(), info.getVersion(), // info.getName(), info.getStateName() }; // writer.println(NLS.bind(WorkbenchMessages.SystemSummary_descriptorIdVersionState, args)); // } // } // // /** // * Appends the preferences // */ // private void appendUserPreferences(PrintWriter writer) { // // write the prefs to a byte array // IPreferencesService service = Platform.getPreferencesService(); // IEclipsePreferences node = service.getRootNode(); // ByteArrayOutputStream stm = new ByteArrayOutputStream(); // try { // service.exportPreferences(node, stm, null); // } catch (CoreException e) { // writer.println("Error reading preferences " + e.toString());//$NON-NLS-1$ // } // // // copy the prefs from the byte array to the writer // writer.println(); // writer.println(WorkbenchMessages.SystemSummary_userPreferences); // // BufferedReader reader = null; // try { // ByteArrayInputStream in = new ByteArrayInputStream(stm // .toByteArray()); // reader = new BufferedReader(new InputStreamReader(in, "8859_1")); //$NON-NLS-1$ // char[] chars = new char[8192]; // // while (true) { // int read = reader.read(chars); // if (read <= 0) { // break; // } // writer.write(chars, 0, read); // } // } catch (IOException e) { // writer.println("Error reading preferences " + e.toString());//$NON-NLS-1$ // } // // // ByteArray streams don't need to be closed // } //}